QuickSight の VPC 接続がなかなか削除されないのは IAM ロールの権限の問題だった

QuickSight の VPC 接続がなかなか削除されないのは IAM ロールの権限の問題だった

QuickSight の VPC 接続がなかなか削除されないのは IAM ロールの権限の問題でした。サービスリンクロールを手で編集するのはやめましょう。
Clock Icon2024.11.10

コーヒーが好きな emi です。

QuickSight の VPC 接続(VPC Connection)がなかなか削除されなくて困ったので、調査したことと実施内容を記載します。

VPC 接続が削除できない

不要な VPC 接続(VPC Connection)を削除しようとします。
vpc-connections-in-quicksight-are-not-being-removed-easily_1

VPC 接続名のリンクを開くとこのようにステータスが表示されます。
vpc-connections-in-quicksight-are-not-being-removed-easily_2

削除を選択すると、
vpc-connections-in-quicksight-are-not-being-removed-easily_3

vpc-connections-in-quicksight-are-not-being-removed-easily_4

「VPC 接続の削除に成功しました」という表示は出るものの、
vpc-connections-in-quicksight-are-not-being-removed-easily_5

ステータスは「AVAILABLE」のままです。
vpc-connections-in-quicksight-are-not-being-removed-easily_6

編集

削除したい VPC 接続を編集してみます。
vpc-connections-in-quicksight-are-not-being-removed-easily_7

設定を確認すると、実行ロールに QuickSight のサービスリンクロールである「aws-quicksight-service-role-v0」が設定されていました。
vpc-connections-in-quicksight-are-not-being-removed-easily_8

原因

QuickSight が自動で作成するサービスリンクロールには以下の二つが存在します。

  • aws-quicksight-service-role-v0
  • aws-quicksight-secretsmanager-role-v0

https://dev.classmethod.jp/articles/iam-how-to-identify-service-linked-roles/

これらのサービスリンクロールをユーザーが直接編集すると、QuickSight の管理画面で「QuickSight の AWS のサービスへのアクセス」を編集する際にエラーになってしまうことがあります。

私は最初、VPC 接続を作成する際実行ロールとして「aws-quicksight-service-role-v0」を設定したが、VPC 接続がうまくいかない、という事象にぶつかっており、手で「aws-quicksight-service-role-v0」に VPC の編集権限を付けてしまったという経緯がありました。

この時は VPC 接続は作成できたものの、QuickSight の管理画面で「QuickSight の AWS のサービスへのアクセス」を編集しようとしたところエラーになってしまい、以下 re:Post 記事を参考に、サービスリンクロールと、それに付与されている IAM ポリシーを一旦削除して、再度 QuickSight 側で自動作成されるのを待ちました。

https://repost.aws/ja/knowledge-center/quicksight-permission-errors

そういう経緯で、VPC への権限がない新しいサービスリンクロール「aws-quicksight-service-role-v0」が設定されていたために VPC 接続が削除できなかったのです。

vpc-connections-in-quicksight-are-not-being-removed-easily_16-2

今回は QuickSight が VPC を操作するために別途「quicksight-vpc-role」を作成し、VPC 接続の実行ロールとして設定しました。

vpc-connections-in-quicksight-are-not-being-removed-easily_9

「quicksight-vpc-role」に付与する権限は以下ドキュメントやブログを参照ください。

再度削除

再度削除を試みます。
vpc-connections-in-quicksight-are-not-being-removed-easily_10

「UNAVAILABLE」に変わりました!
vpc-connections-in-quicksight-are-not-being-removed-easily_11

詳細を開くと「DELETING」となっています。
vpc-connections-in-quicksight-are-not-being-removed-easily_12

少し待つと「DELETED」になりました。
vpc-connections-in-quicksight-are-not-being-removed-easily_13

QuickSight コンソールでVPCの接続の設定 - Amazon QuickSight からの引用ですが、ステータスの意味は以下のようになっています。

ステータス 説明
CREATING ネットワークインターフェイスの作成が進行中です。
AVAILABLE ネットワークインターフェイスは使用可能です。
CREATION_FAILURE ネットワークインターフェイスを作成できませんでした。
UPDATING ネットワークインターフェイスに関連付けられたセキュリティグループが更新されています。
UPDATE_FAILED ネットワークインターフェイスに関連付けられたセキュリティグループが正常に更新されませんでした。
DELETING ネットワークインターフェイスを削除しています。
DELETED ネットワークインターフェイスは削除され、使用できなくなります。
DELETION_FAILED ネットワークインターフェイスの削除は失敗し、引き続き使用できます。
DELETION_SCHEDULED このネットワークインターフェイスは削除される予定です。
ATTACHMENT_FAILED_ROLLBACK_FAILED Elastic Interface はアタッチに失敗し、アカウント内で作成されたElastic Network Interface を削除 QuickSight できませんでした。

EC2 コンソールからの確認

EC2 コンソールでネットワークインターフェースを確認すると、まだ「In-use」となっており、削除できないようでした。
vpc-connections-in-quicksight-are-not-being-removed-easily_14

vpc-connections-in-quicksight-are-not-being-removed-easily_15

まだ、QuickSight 用のセキュリティグループも削除できない状態です。

VPC リソースの削除

VPC 接続を使っているデータソース、データセット、分析、ダッシュボードを削除し、もう一つの VPC 接続も削除しました。
vpc-connections-in-quicksight-are-not-being-removed-easily_17

QuickSight で別リージョンの Redshift のデータを可視化する | DevelopersIO で作成したバージニア北部リージョンと東京リージョン間の VPC ピアリング接続も削除しました。
vpc-connections-in-quicksight-are-not-being-removed-easily_18

vpc-connections-in-quicksight-are-not-being-removed-easily_19

ここまで削除すると、QuiciSight 用のネットワークインターフェース(ENI)も消えてなくなっていました。
vpc-connections-in-quicksight-are-not-being-removed-easily_20

VPC の削除も実行できます。
vpc-connections-in-quicksight-are-not-being-removed-easily_21

QuickSight 用に準備した東京リージョンの VPC ごと綺麗に削除できました。
vpc-connections-in-quicksight-are-not-being-removed-easily_22

以上です。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.